﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EntityBLL;
using DAL;
using DataContext;
namespace WorkFlowBLL
{
    public class CtrCategory
    {
        /// <summary>
        /// Lấy danh sách chuyên mục Category
        /// </summary>
        /// <returns></returns>
        public List<uspCategoryGetAllResult> GetListCategory()
        {
            return DAL.CategoryInstance.CreateInstance().uspCategoryGetAll().ToList();
        }

        /// <summary>
        /// Thêm mới 1 chuyên mục
        /// </summary>
        /// <param name="categoryName">Tên chuyên mục</param>
        /// <param name="status">Trạng thái chuyên mục: 1:Hoạt động, 0:Không hoạt động</param>
        /// <returns></returns>
        public int InsertCategory(string categoryName, short status)
        {
            try
            {
                return DAL.CategoryInstance.CreateInstance().uspCategoryInsert(categoryName, status);
            }
            catch
            {
                throw;
            }
        }

        /// <summary>
        /// Cập nhật trạng thái chuyên mục
        /// </summary>
        /// <param name="categoryName"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public int UpdateCategory(int categoryID,string categoryName, short status)
        {
            return DAL.CategoryInstance.CreateInstance().uspCategoryUpdate(categoryID, categoryName, status);
        }

        /// <summary>
        /// Xóa chuyên mục Category
        /// </summary>
        /// <param name="categoryID"></param>
        /// <returns></returns>
        public int DeleteCategoryID(int categoryID)
        {
            return DAL.CategoryInstance.CreateInstance().uspCategoryDeleteByCategoryID(categoryID);
        }

        /// <summary>
        /// Lấy danh sách chuyên mục Category theo trạng thái
        /// </summary>
        /// <returns></returns>
        public List<uspCategoryGetAllByStatusResult> GetListCategory(int status)
        {
            return DAL.CategoryInstance.CreateInstance().uspCategoryGetAllByStatus(status).ToList();
        }

        public uspCategoryGetInfoByCategoryIDResult GetCategoryInfo(int categoryID)
        {
            return DAL.CategoryInstance.CreateInstance().uspCategoryGetInfoByCategoryID(categoryID).FirstOrDefault();
        }
    }
}
